#ifndef POINT_3D_H
#define POINT_3D_H

#include "..\glm\glm.hpp"

class Point3D;

Point3D abs(Point3D p);

class Point3D
{
public:
	Point3D(void);
	Point3D(float x1, float y1, float z1);
	Point3D(glm::vec3 v1);
	~Point3D(void);
	float length();
	Point3D normalize();
	Point3D scale(Point3D p);

public:
	Point3D operator + (Point3D p1);
	Point3D operator - (Point3D p1);
	Point3D operator - ();
	Point3D operator * (float a1);
	Point3D operator / (float a1);
	Point3D operator = (Point3D p1);
	Point3D& operator += (Point3D p1);
	Point3D crossProduct(Point3D p1);
	float dotProduct(Point3D p1);

public:
	float x;
	float y;
	float z;
};

#endif